<?xml version = '1.0' encoding = 'UTF-8'?>
<HBRRepo><variables><variable name="OQP_Territory" type="member" usage="const" id="1" product="Planning"><property name="application">SalesPln</property><property name="dimensionInputMode">type</property><property name="dimensionType">Territory</property><property name="prompt_text">LABEL_QTP_SLS_PLAN_PRMPT_TERRITORY</property><property name="scope">ruleset</property><property name="seeded">true</property><value/></variable><variable name="OQP_Version" type="member" usage="const" id="2" product="Planning"><property name="application">SalesPln</property><property name="dimensionInputMode">type</property><property name="dimensionType">Version</property><property name="prompt_text">LABEL_QTP_SLS_PLAN_PRMPT_VERSION</property><property name="scope">ruleset</property><property name="seeded">true</property><value/></variable></variables><rulesets/><rules><rule id="1" name="OQP_Global Seasonality" product="Planning"><property name="application">SalesPln</property><property name="plantype">OEP_QTP</property><property name="seeded">true</property><variable_references><variable_reference name="OQP_Territory" id="1"><property name="application">SalesPln</property><property name="hidden">true</property><property name="rule_name">OQP_Global Seasonality</property><property name="seq">1</property><property name="type">3</property><property name="useAsOverrideValue">false</property><property name="validation_value">"OEP_Any Territory"</property></variable_reference><variable_reference name="OQP_Version" id="2"><property name="application">SalesPln</property><property name="hidden">true</property><property name="rule_name">OQP_Global Seasonality</property><property name="seq">2</property><property name="type">3</property><property name="useAsOverrideValue">false</property><property name="validation_value">OEP_Working</property></variable_reference></variable_references><script type="groovy">			/*RTPS:{OQP_Territory} {OQP_Version}*/
            /*PURPOSE: This rule sets seasonality percentages across all entities based on the global percentage input*/
			String entity = rtps.OQP_Territory.member.name;
			String EntityDimName;	
            String Scenario;
			String Version=rtps.OQP_Version.member.name;			
			try
			{
			def grid=operation.grid;
			List&lt;String> CustomDimensions=[];
			StringBuilder cscript = new StringBuilder();
			cscript.append('''SET AGGMISSG ON;\n''');
			cscript.append('''SET UPDATECALC OFF;\n''');			
            /*Fetches POV Dimensionss*/
			List&lt;DataGrid.HeaderCell> povs = grid.getPov()
			for (DataGrid.HeaderCell pov : povs) 
			{
				String memName=pov.getMbrName()
				String dimName=pov.getDimName()
				if (memName.equals(entity))
				{
					EntityDimName=dimName;
				}
                if ( !memName.equals(Version) &amp;&amp; !pov.getDimensionType().equals(DimensionType.SIMPLE_CURRENCY) &amp;&amp; !memName.equals(entity) )
				{
					CustomDimensions.add('''"'''+memName+'''"''');

				}				
			} 
            /*Fetches Scenario Member from User variable*/
            Application app=operation.getApplication();            
            UserVariable uvScenario=app.getUserVariable("OEP_Scenario");
           	Member memScenario=uvScenario.getValue();
            Scenario=memScenario.getName();
            /*Main Fix with all custom dimensions*/
			cscript.append('''FIX(@Relative("YearTotal",0)''')
			cscript.append(''',@Remove(@IDESCENDANTS("OEP_Total '''+EntityDimName+'''"),"'''+entity+'''")''')
			cscript.append (''',"'''+Version+'''"''')
			cscript.append(''',"'''+Scenario+'''"''')
			if (app.getCurrencyMode()!=CurrencyMode.SINGLE_CURRENCY)
			  {
				String sCurrency =  operation.grid.pov.find { it.dimName == 'Currency' }.essbaseMbrName 
                //cscript.append (''',"'''+app.getDefaultCurrency()+'''"''')
                cscript.append (''',"'''+ sCurrency +'''"''')
			  }
			 if (CustomDimensions.size() >0)
			{
				cscript.append(''','''+CustomDimensions.join(''',''') )
			}	
			   cscript.append(''')\n''')
            /*Creates blocks for all members of entity dimension members*/
			cscript.append('''	FIX("BegBalance","OQP_Seasonality%")\n''')            
            cscript.append('''		&amp;OEP_CurYr=@CREATEBLOCK(@CURRMBR("'''+EntityDimName+'''"));\n''')
            cscript.append('''	ENDFIX\n''')
            /*Assigns seasonality percentages for all entites */
            cscript.append('''	FIX(&amp;OEP_CurYr)\n''')            
			cscript.append('''		"OQP_Seasonality%"( \n''')                        
			cscript.append('''			"OQP_Seasonality%"="OQP_Seasonality%"->"'''+entity+'''";\n''')
			cscript.append('''		)\n''')
			cscript.append('''	ENDFIX\n''')
			cscript.append('''ENDFIX\n''')
			println(cscript.toString())
			return cscript.toString()
			}catch(all) {
					throw new HspRuntimeException('Error occured while executing business rule');
				}
		
		</script></rule></rules><components/><deployobjects><deployobject product="2" application="salespln" plantype="oep_qtp" obj_id="1" obj_type="1" name="OQP_GLOBAL SEASONALITY"/></deployobjects></HBRRepo>